package com.cyzy.homework.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
import java.time.LocalDate;

/**
 * 请假申请DTO
 */
@Data
public class LeaveRequestDTO {
    
    private Long id;
    
    /**
     * 学生ID
     */
    private String userId;
    
    /**
     * 班级ID
     */
    private String classId;
    
    /**
     * 请假类型（0-事假，1-病假/健康请假）
     */
    private Integer leaveType;
    
    /**
     * 开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate startDate;
    
    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate endDate;
    
    /**
     * 请假原因
     */
    private String reason;
    
    /**
     * 请假天数
     */
    private Integer days;
    
    /**
     * 申请状态（0-待审核，1-已同意，2-已拒绝）
     */
    private Integer status;
    
    /**
     * 审核意见
     */
    private String reviewComment;
    
    /**
     * 审核人ID
     */
    private String reviewerId;
    
    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime applyTime;
    
    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime reviewTime;
    
    /**
     * 请假类型文本
     */
    public String getLeaveTypeText() {
        if (leaveType == null) return "未知";
        switch (leaveType) {
            case 0: return "事假";
            case 1: return "健康请假";
            default: return "未知";
        }
    }
    
    /**
     * 状态文本
     */
    public String getStatusText() {
        if (status == null) return "未知";
        switch (status) {
            case 0: return "待审核";
            case 1: return "已同意";
            case 2: return "已拒绝";
            default: return "未知";
        }
    }
}


